;extern "C" bool verificar_id (Lista* la_lista, Uint32 id); recorre la lista
;verificando que ningun elemento tenga ID = id.

%include "nodo.mac"

global verificar_id ;

%define p_lista [ebp+8]
%define ID [ebp+12] ;

section .text

verificar_id: 
	push ebp
	mov ebp, esp
	push esi
	push edi

	mov esi, p_lista	

ciclo:
	mov edi, [esi] ; accedo al  nodo
	cmp edi, 0 ; edi apunta a null (pregunta)
	je verdadero
ListaNoVacia:
	mov edx, [edi + off_ID]
	cmp edx, ID
	je falso	
	lea esi, [edi + off_p_prox] ; pongo es esi la direccion del proximo nodo (un punt
	jmp ciclo
verdadero:
	mov eax, 1
	jmp fin
falso:
	mov eax, 0
	jmp fin	

fin:
	pop edi
	pop esi
	pop ebp
	ret ; retorna en eax 0 o 1
